//
//  JQFYPay.m
//  JQFY
//
//  Created by 代辉 on 2017/10/21.
//  Copyright © 2017年 yannis. All rights reserved.
//

#import "JQFYPay.h"
#import "WXApi.h"
#import <AlipaySDK/AlipaySDK.h>

@implementation JQFYPay

IMPLEMENTATION_SINGLETON(JQFYPay);

- (void)aliPay:(NSDictionary *)parameter success:(void(^)(void))sucess
{
    [[AFHTTPSessionManager manager] POST:@"http://app.uninhibited.cn/api/pay/alipay/app"
                              parameters:parameter
                                progress:nil
                                 success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
                                     
                                     if ([responseObject[@"status"] isEqualToString:@"success"]) {
                                         
                                         NSString *orderString = responseObject[@"msg"];
                                         NSString *appScheme = @"UNINHIBITED";
                                         
                                         // NOTE: 调用支付结果开始支付
                                         [[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
                                             
                                             if ([resultDic[@"resultStatus"] integerValue] == 9000 && ![resultDic[@"result"] isEqualToString:@""]) {
                                                 
                                                 sucess();
                                                 
                                             }
                                         }];
                                     }
                                 } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
                                     [MBProgressHUD showWithMessage:@"请求超时"];
                                 }];
    
    
}

- (void)wxPay:(NSDictionary *)parameter
{
    
    [[AFHTTPSessionManager manager] POST:@"http://app.uninhibited.cn/api/pay/wechat/app"
                              parameters:parameter
                                progress:nil
                                 success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
                                     
                                     [self WXPay:responseObject];
                                     
                                 } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
                                     if (error) {
                                         [MBProgressHUD showWithMessage:@"网络请求失败"];
                                     }
                                 }];
}


- (void)WXPay:(id)responseObject
{
    PayReq *req   = [[PayReq alloc] init];
    NSDictionary *orderInfo = responseObject[@"msg"];
    //由用户微信号和AppID组成的唯一标识，用于校验微信用户
    req.openID = @"wx1173e230d93a4c40";
    // 商家id，在注册的时候给的
    req.partnerId = orderInfo[@"partnerid"];
    // 预支付订单这个是后台跟微信服务器交互后，微信服务器传给你们服务器的，你们服务器再传给你
    req.prepayId  = orderInfo[@"prepayid"];
    // 根据财付通文档填写的数据和签名
    //这个比较特殊，是固定的，只能是即req.package = Sign=WXPay
    req.package   = @"Sign=WXPay";
    // 随机编码，为了防止重复的，在后台生成
    req.nonceStr  = orderInfo[@"noncestr"];
    // 这个是时间戳，也是在后台生成的，为了验证支付的
    req.timeStamp = [orderInfo[@"timestamp"] intValue];
    // 这个签名也是后台做的
    req.sign = orderInfo[@"sign"];
    
    //发送请求到微信，等待微信返回onResp
    [WXApi sendReq:req];
}
@end
